package io;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @author Huangjin
 * @version 1.0
 * describe:IO:Input和Output,即：输入输出
 *
 *      java将输入和输出用“流Stream”表达，分为输入流和输出流，
 *      我们可以将他们想象为连接我们的程序和另一个设备之间的“管道”，通过他们可以读写设备
 *      java将流输入流和输出定义了两个对应的超类InputStream和OutputStream：
 *      1）InputStream：
 *          输入流，方向是从外界到程序的方向，用于读取数据的流，是一个抽象类，定义了读取字节的相关操作
 *      2）OutputSStream：
 *          输出流，方向是从程序到外界的方向，用于写出数据的流，是一个抽象类，定义了写出字节的相关方法
 *      文件流：FileInputStream和FileOutputStream
 *      文件流继承自InputStream和OutputStream，用于文件进行读写操作
 * @date 2023/3/7 10:25
 */
public class FOSDemo {
    public static void main(String[] args) throws IOException {
        /*
            void write(int d):
            通过该输出流想目标位置写出1个字节，写出的是给定的int值对应的2进制的“低八位”
            当fos.write(1);时，向fos.dat中写入了1个字节
            int值得2进制的样子：00000000 00000000 00000000 00000001
                                                        ^^^^^^^^
            write()后，fos.dat文件内容（长度为1字节）
            00000001
            当fos.write(2)时，又向fos.dat中写入了1个字节
            int值2的2进制样子：00000000 0000000 000000 00000010

         */
        File file = new File("fos.dat");
        FileOutputStream fos = new FileOutputStream(file);
        //FileOutputStream fos = new FileOutputStream("fos.txt");
        //向fos.dat中写入了1个字节
        fos.write(1);
        //向fos.dat中又写入了1个字节
        fos.write(2);
        System.out.println("写出完毕！");
        //关闭流
        fos.close();
    }
}
